package com.liyuxiang.graph.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

/**
 * 增强的AI响应实体，支持快捷选择功能
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EnhancedAiResponse {
    
    /**
     * AI回复的文本内容
     */
    private String response;
    
    /**
     * 响应类型：text(纯文本) / options(选择题) / mixed(文本+选项)
     */
    private ResponseType responseType = ResponseType.TEXT;
    
    /**
     * 快捷选择选项列表
     */
    private List<QuickOption> quickOptions;
    
    /**
     * 是否显示输入框（当有选项时可以隐藏输入框）
     */
    private boolean showTextInput = true;
    
    /**
     * 提示用户选择的标题
     */
    private String selectionPrompt;
    
    /**
     * 其他元数据
     */
    private Map<String, Object> metadata;
    
    /**
     * 快捷选项实体
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class QuickOption {
        /**
         * 选项显示文本
         */
        private String label;
        
        /**
         * 选项值（发送给AI的文本）
         */
        private String value;
        
        /**
         * 选项类型：primary/secondary/danger等，用于UI样式
         */
        private String type = "default";
        
        /**
         * 选项图标（可选）
         */
        private String icon;
        
        /**
         * 是否是推荐选项
         */
        private boolean recommended = false;
    }
    
    /**
     * 响应类型枚举
     */
    public enum ResponseType {
        TEXT,           // 纯文本，显示输入框
        OPTIONS,        // 纯选择题，隐藏输入框
        MIXED          // 文本+选项，都显示
    }
}